package org.iks.common.aop;

import org.iks.common.constant.SortType;

import java.lang.annotation.*;


/**
 * @author kzou
 * @date 2023/12/17 19:58
 * @description: @{@link OrderQuerySupportVo}
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value = {ElementType.FIELD, ElementType.METHOD})
public @interface OrderFields {

    OrderField[] mappingFields() default {};

    /**
     * 默认排序类型
     */
    SortType defaultSortType() default SortType.ASC;

    /**
     * 字段与排序方式之间的风格符 eg  id:asc
     */
    String orderFieldSeparator() default ":";

    /**
     * 字段之间的分隔符 eg createTime:desc,id:asc
     */
    String fieldSeparator() default ",";

    /**
     * 是否开启：驼峰转下划线
     */
    boolean camelCaseToUnderline() default false;

}
